package com.micro.ai.auth.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.micro.ai.auth.dto.UserSessionDTO;

import java.util.List;
import java.util.Map;

/**
 * 用户会话服务接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public interface UserSessionService {

    /**
     * 获取用户所有会话
     */
    List<UserSessionDTO> getUserSessions(String userId);

    /**
     * 获取会话详情
     */
    UserSessionDTO getSessionById(String sessionId);

    /**
     * 强制下线指定会话
     */
    void terminateSession(String sessionId, String currentUserId);

    /**
     * 强制下线所有会话（除当前）
     */
    void terminateAllSessions(String userId, String currentSessionId);

    /**
     * 分页查询在线会话
     */
    Page<UserSessionDTO> listOnlineSessions(int pageNum, int pageSize, String tenantId, String keyword);

    /**
     * 获取在线统计
     */
    Map<String, Object> getOnlineStats(String tenantId);

    /**
     * 清理过期会话
     */
    int cleanExpiredSessions();

    /**
     * 更新会话活跃时间
     */
    void updateLastActiveTime(String sessionToken);
}

